package com.wicket.okroperation.dal.po.mbg;

import com.baomidou.mybatisplus.annotation.*;
import com.wicket.okroperation.common.annotations.LikeFlag;
import com.wicket.okroperation.common.annotations.OrderFlag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.beans.BeanUtils;

/**
 * 用于在项目实施前，将不需要的数据分离
 *
 * @author xxx
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName("oms_platform_operation_separated_data")
public class OmsPlatformOperationSeparatedData extends BaseEntity {

  private static final long serialVersionUID = 1L;

  /**
   * 分离数据表主键ID
   */
  @TableId(value = "operation_separated_data_id", type = IdType.UUID)
  @NotNull(message = "operationSeparatedDataId不能为空")
  private String operationSeparatedDataId;

  /**
   * 表ID
   */
  @TableField(value = "table_id")
  @ApiModelProperty("表ID")
  private String tableId;

  /**
   * 中文表名
   */
  @TableField(value = "table_cn_name")
  @ApiModelProperty("中文表名")
  private String tableCnName;

  /**
   * 英文表名
   */
  @TableField(value = "table_en_name")
  @ApiModelProperty("英文表名")
  private String tableEnName;

  /**
   * 设计工具加密表名
   */
  @TableField(value = "tool_table_encryption_name")
  @ApiModelProperty("设计工具加密表名")
  private String toolTableEncryptionName;

  /**
   * 线上加密表名
   */
  @TableField(value = "prd_table_encryption_name")
  @ApiModelProperty("线上加密表名")
  private String prdTableEncryptionName;

  /**
   * 加密表名是否一致 TRUE:是 FALSE:否
   */
  @TableField(value = "encryption_name_is_same")
  @ApiModelProperty("加密表名是否一致")
  private String encryptionNameIsSame;

  /**
   * 归属空间ID
   */
  @TableField(value = "belong_space_id")
  @ApiModelProperty("归属空间ID")
  private String belongSpaceId;

  /**
   * 是否需要数据分离 TRUE:是 FALSE:否
   */
  @TableField(value = "is_needdata_separated")
  @ApiModelProperty("是否需要数据分离")
  private String isNeeddataSeparated;

  /**
   * 数据分离策略类型
   */
  @TableField(value = "data_separated_strategy_type_code")
  @ApiModelProperty("数据分离策略类型")
  private String dataSeparatedStrategyTypeCode;

  /**
   * 数据分离策略描述
   */
  @TableField(value = "data_separated_strategy_desc")
  @ApiModelProperty("数据分离策略描述")
  private String dataSeparatedStrategyDesc;

  /**
   * 数据分离状态 HAVE_COMPLETED:已完成 INCOMPLETE:未完成
   */
  @TableField(value = "data_separated_status")
  @ApiModelProperty("数据分离状态")
  private String dataSeparatedStatus;

  /**
   * 操作人就职记录ID
   */
  @TableField(value = "operation_induction_id")
  @NotNull(message = "操作人就职记录ID不能为空")
  @ApiModelProperty("操作人就职记录ID")
  private String operationInductionId;

  /**
   * 创建人就职记录ID
   */
  @TableField(value = "create_induction_id")
  @ApiModelProperty("创建人就职记录ID")
  private String createInductionId;

  /**
   * 操作时间
   */
  @TableField(value = "operate_time")
  @NotNull(message = "操作时间不能为空")
  @ApiModelProperty("操作时间")
  private Date operateTime;

  /**
   * 创建时间
   */
  @TableField(value = "create_time")
  @ApiModelProperty("创建时间")
  private Date createTime;

  /**
   * 是否作废 TRUE:是 FALSE:否
   */
  @TableField(value = "is_valid")
  @ApiModelProperty("是否作废")
  private String isValid;

  /**
   * 创建于空间ID
   */
  @TableField(value = "space_id")
  @ApiModelProperty("创建于空间ID")
  private String spaceId;

  /**
   * 创建于联盟应用ID
   */
  @TableField(value = "app_id")
  @ApiModelProperty("创建于联盟应用ID")
  private String appId;
}
